﻿import * as React from "react";
import Obj = require('object-assign')
import 颜色 from '../../工具代码/颜色'
import R控件基类 from '../../核心代码/R控件基类'
import * as 基类 from '../../核心代码/控件基类'

export default class R文字按钮 extends R控件基类{
    constructor(props) {
        super(props)
        this.基础数据 = this.props as 文字按钮
        this.标准样式 = this.基础数据.自定义样式 ? this.基础数据.自定义样式 : Obj({}, this.标准样式,
            {
                display: 'inline-block',
                textAlign: 'center',
                lineHeight: this.基础数据.高度 ? this.基础数据.高度.取值 : 30,
                fontSize: this.基础数据.高度.乘(.6).取值
            })
        this.state = {
            使用样式: this.标准样式,
            是否启用: this.基础数据.是否启用 ? null : this.基础数据.是否启用
        }
        this.禁用样式 = Obj({}, this.state.使用样式, this.样式.取禁用样式)
    }

    基础数据: 文字按钮

    事件处理 = Obj({}, this.基本事件, {
        onClick: (e) => {
            e.stopPropagation()
            this.基础数据.单击 ? this.基础数据.单击(e) : {}
        }
    })

    render() {
        if (this.state.是否启用 == null || this.state.是否启用 == true) {
            return (
                <div style={this.state.使用样式}
                    {...this.事件处理}
                    >
                    {this.基础数据.按钮标题}
                </div>
            )
        } else {
            return (
                <div style={this.禁用样式}
                    >
                    {this.基础数据.按钮标题}
                </div>
            )
        }
    }
}

export interface 文字按钮 extends 基类.控件基类 {
    按钮标题?: string
    单击?: (e) => void
    按下快捷键?: (e) => void
}
